Slot-type electronic and/or mechanical gaming machines, often also referred as slot machines, are popular fixtures in casino or other gaming environments. Such slot machines are generally controlled by installed software programs. Aside from slot machines, various other kinds of gaming devices, including electronically-assisted gaming tables are also generally controlled by installed software programs. Participants in gaming environments may include one or more primary players who are directly using the slot or other software driven gaming apparatuses, one or more locally adjacent players who are directly using locally adjacent slot or other software driven gaming apparatuses, in-casino further players who are participating in an in-casino progressive jackpot pool, wide area players who are participating in a state sanctioned wide area progressive jackpot pool, adjacent bystanders (e.g., players' friends) who are standing nearby the primary players and nearby passers by who happen to be passing by in an area where they can view part of the gaming action(s) of one or more of the slot or other software driven gaming apparatuses including displays of the progressively growing local or other area jackpot pools and the occasional awarding of such jackpots.
Slot machines may use mechanical reels or wheels and/or video reels or wheels to present both action during development of a game outcome and a finalized outcome of a slot game to a corresponding one or more players. Typically, before each gaming action by the machine (e.g., spinning of the reels or wheels), the player is required to ante up by placing at least one wager on the outcome of the gaming action. In some games, a player can elect to have part of one of his/her wagers contributed to a progressive jackpot pool. Excitement grows as the size of the progressive jackpot pool reaches relatively large values. Chances for winning the progressive jackpot pool can come in various software mediated ways. For example, the player may select or define (or may have automatically pre-determined for the player) a line, pattern or other set of symbol spots that will operate as an actively-wagered upon pay line or pattern along which, game-generated randomly distributed symbols are evaluated to determine if a winning combination is present (e.g., a sequence defining combination such Jack, Queen, King, Ace, etc. cards, hereafter also J, Q, K, A). If the actively-wagered upon pay line or pattern provides a winning combination, the player is rewarded (e.g., monetarily and/or otherwise). Various outcome enhancing symbols such as wild symbols can appear on the reels or wheels of the game. Wild symbols typically serve as outcome enhancing substitutes for symbols needed to form a winning combination. In various prior art games, wild symbols: (1) can come into existence by other symbols individually morphing into wild symbols; (2) they can be individually copied from one reel or wheel to another; (3) they can be dropped from an animated character (e.g., cartoon) onto the reels or wheels to individually change certain existing symbols on a scatter distributed basis; and (4) they can populate a reel or wheel more frequently during so-called, free spins. On occasions, a player may be awarded with a wheel spin that gives the player a crack at the progressive jackpot pool. Due to such occasional sprinklings of a chance of winning the progressive jackpot pool, the primary players and adjacent other persons may experience various emotional responses and derive entertainment value from not only the unique ways in which various games are played and game outcomes are developed but also from the chance of winning the progressive jackpot pool.
Because sizes of progressive jackpot pools can be substantial, state and/or other government entities take interest in assuring that the progressive jackpot pools are run in fair and verifiable ways and pool awards are reported for taxation purposes. Casinos also take keen interest in assuring that the progressive jackpot pools are run in fair and verifiable way because the casinos can incur substantial losses if there is a compromise to the security and/or fairness aspects of the gaming actions carried out by their slot or other software driven gaming apparatuses.
One prior art method by way of which some jurisdictions assure fairness of operation of slot or other software driven gaming apparatuses is through GLI-21 (Gaming Laboratories International Client-Server Certification Standards) where a currently in force version of the certification process is Version 2.2 (released Sep. 6, 2011). Briefly according to the GLI-22 specification, a certain type of hash known as SHA-1 (Secure Hash Algorithm 1—specified by the US National Security Agency) is taken of various software code fragments as they are installed into respective servers that drive the slot or other software driven gaming apparatuses after the fairness of the software has been ascertained by a government approved testing institution. A GLI-certification letter is generated setting forth the hash results. Thereafter, a government agent may test any of the slot or other software driven gaming apparatuses for compliance with the GLI-certification letter (to verify that any sampled or all gaming action driving programs produced the same hash values at program launch time). Use of SHA-1 hashes for security purposes is also disclosed in Patel U.S. Pat. No. 8,900,054 (Dec. 2, 2014). Patel discloses that software packages added to a software library may be verified from package data using an MD5 or SHA-1 or some other verification tool. According to Patel '054 the verification string may be added to a package header and used to re-verify the package after it is downloaded to the EGM 213. All verification failures and related errors may be logged, and the log entry may contain the date and time, the ID of the person running the process at the time, and the specific type of error that occurred. According to Patel '054: A build package utility is used to generate download packages, and a package installed utility is supplied on the EGM to install downloaded packages. Both of these perform necessary compression and decompression as well as the data integrity checks of the contents of the package. The package builder utility calculates a SHA-1 hash value over the entire data contents of the package. This is then stored in the package header and is used by the package receiver and installed on the EGM to validate the contents of the package. The package will not be installed on the EGM unless it passes this SHA-1 validation.
While the GLI-22 process provides a relatively strong level of protection, it is possible to provide even stronger levels of protection against compromise of the software programs that control slot or other software driven gaming apparatuses.
In one embodiment, certain ports of a gaming machine system are automatically repeatedly monitored by one or more watchdogging mechanism to determine whether any suspicious activities (e.g., unexpected service requests and/or service requests made by unexpected requestors) are taking place there. More specifically, such port watchdogging is disclosed in U.S. Ser. No. 15/787,649 filed Oct. 18, 2017 by Jasonlee Hohman and entitled “Server Process Validation”. It is possible to provide yet stronger levels of protection. It is to be understood that some concepts and ideas provided in this description of the Background may be novel rather than part of the prior art.